/*
 * Copyright (C) 2009,2010 University of Paderborn, Computer Networks Group
 * Copyright (C) 2009,2010 Christian Dannewitz <christian.dannewitz@upb.de>
 * Copyright (C) 2009,2010 Thorsten Biermann <thorsten.biermann@upb.de>
 * 
 * Copyright (C) 2009,2010 Eduard Bauer <edebauer@mail.upb.de>
 * Copyright (C) 2009,2010 Matthias Becker <matzeb@mail.upb.de>
 * Copyright (C) 2009,2010 Frederic Beister <azamir@zitmail.uni-paderborn.de>
 * Copyright (C) 2009,2010 Nadine Dertmann <ndertmann@gmx.de>
 * Copyright (C) 2009,2010 Michael Kionka <mkionka@mail.upb.de>
 * Copyright (C) 2009,2010 Mario Mohr <mmohr@mail.upb.de>
 * Copyright (C) 2009,2010 Felix Steffen <felix.steffen@gmx.de>
 * Copyright (C) 2009,2010 Sebastian Stey <sebstey@mail.upb.de>
 * Copyright (C) 2009,2010 Steffen Weber <stwe@mail.upb.de>
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in the
 *       documentation and/or other materials provided with the distribution.
 *     * Neither the name of the University of Paderborn nor the
 *       names of its contributors may be used to endorse or promote products
 *       derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: netinf/node/gp/GPNetInfMessages.proto

package netinf.node.gp.messages;

/**
 * The Class GPNetInfMessages.
 * 
 * @author PG Augnet 2, University of Paderborn
 */
public final class GPNetInfMessages {
  private GPNetInfMessages() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  
  /**
    * The Class NIMessageContainer.
    * 
    * @author PG Augnet 2, University of Paderborn
    */
  public static final class NIMessageContainer extends
      com.google.protobuf.GeneratedMessage {
    // Use NIMessageContainer.newBuilder() to construct.
    private NIMessageContainer() {
      initFields();
    }
    private NIMessageContainer(boolean noInit) {}
    
    private static final NIMessageContainer defaultInstance;
    public static NIMessageContainer getDefaultInstance() {
      return defaultInstance;
    }
    
    public NIMessageContainer getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NIMessageContainer_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NIMessageContainer_fieldAccessorTable;
    }
    
    /**
       * The Enum NIMessageType.
       * 
       * @author PG Augnet 2, University of Paderborn
       */
    public enum NIMessageType
        implements com.google.protobuf.ProtocolMessageEnum {
      UNKNOWN(0, 1),
      ADDNAME(1, 2),
      RESOLVE(2, 3),
      RESOLVECALLBACK(3, 4),
      PREPAREGP(4, 5),
      MOVEEP(5, 6),
      ;
      
      
      public final int getNumber() { return value; }
      
      public static NIMessageType valueOf(int value) {
        switch (value) {
          case 1: return UNKNOWN;
          case 2: return ADDNAME;
          case 3: return RESOLVE;
          case 4: return RESOLVECALLBACK;
          case 5: return PREPAREGP;
          case 6: return MOVEEP;
          default: return null;
        }
      }
      
      public static com.google.protobuf.Internal.EnumLiteMap<NIMessageType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static com.google.protobuf.Internal.EnumLiteMap<NIMessageType>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<NIMessageType>() {
              public NIMessageType findValueByNumber(int number) {
                return NIMessageType.valueOf(number)
      ;        }
            };
      
      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(index);
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer.getDescriptor().getEnumTypes().get(0);
      }
      
      private static final NIMessageType[] VALUES = {
        UNKNOWN, ADDNAME, RESOLVE, RESOLVECALLBACK, PREPAREGP, MOVEEP, 
      };
      public static NIMessageType valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        return VALUES[desc.getIndex()];
      }
      private final int index;
      private final int value;
      private NIMessageType(int index, int value) {
        this.index = index;
        this.value = value;
      }
      
      static {
        netinf.node.gp.messages.GPNetInfMessages.getDescriptor();
      }
      
      // @@protoc_insertion_point(enum_scope:ForMux.Posix.NetInf.NIMessageContainer.NIMessageType)
    }
    
    // required .ForMux.Posix.NetInf.NIMessageContainer.NIMessageType type = 1;
    public static final int TYPE_FIELD_NUMBER = 1;
    private boolean hasType;
    private netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer.NIMessageType type_;
    public boolean hasType() { return hasType; }
    public netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer.NIMessageType getType() { return type_; }
    
    // optional .ForMux.Posix.NetInf.NIaddName addName = 2;
    public static final int ADDNAME_FIELD_NUMBER = 2;
    private boolean hasAddName;
    private netinf.node.gp.messages.GPNetInfMessages.NIaddName addName_;
    public boolean hasAddName() { return hasAddName; }
    public netinf.node.gp.messages.GPNetInfMessages.NIaddName getAddName() { return addName_; }
    
    // optional .ForMux.Posix.NetInf.NIresolve resolve = 3;
    public static final int RESOLVE_FIELD_NUMBER = 3;
    private boolean hasResolve;
    private netinf.node.gp.messages.GPNetInfMessages.NIresolve resolve_;
    public boolean hasResolve() { return hasResolve; }
    public netinf.node.gp.messages.GPNetInfMessages.NIresolve getResolve() { return resolve_; }
    
    // optional .ForMux.Posix.NetInf.NIresolveCallback resolveCallback = 4;
    public static final int RESOLVECALLBACK_FIELD_NUMBER = 4;
    private boolean hasResolveCallback;
    private netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback resolveCallback_;
    public boolean hasResolveCallback() { return hasResolveCallback; }
    public netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback getResolveCallback() { return resolveCallback_; }
    
    // optional .ForMux.Posix.NetInf.NIprepareGP prepareGP = 5;
    public static final int PREPAREGP_FIELD_NUMBER = 5;
    private boolean hasPrepareGP;
    private netinf.node.gp.messages.GPNetInfMessages.NIprepareGP prepareGP_;
    public boolean hasPrepareGP() { return hasPrepareGP; }
    public netinf.node.gp.messages.GPNetInfMessages.NIprepareGP getPrepareGP() { return prepareGP_; }
    
    // optional .ForMux.Posix.NetInf.NImoveEP moveEP = 6;
    public static final int MOVEEP_FIELD_NUMBER = 6;
    private boolean hasMoveEP;
    private netinf.node.gp.messages.GPNetInfMessages.NImoveEP moveEP_;
    public boolean hasMoveEP() { return hasMoveEP; }
    public netinf.node.gp.messages.GPNetInfMessages.NImoveEP getMoveEP() { return moveEP_; }
    
    private void initFields() {
      type_ = netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer.NIMessageType.UNKNOWN;
      addName_ = netinf.node.gp.messages.GPNetInfMessages.NIaddName.getDefaultInstance();
      resolve_ = netinf.node.gp.messages.GPNetInfMessages.NIresolve.getDefaultInstance();
      resolveCallback_ = netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback.getDefaultInstance();
      prepareGP_ = netinf.node.gp.messages.GPNetInfMessages.NIprepareGP.getDefaultInstance();
      moveEP_ = netinf.node.gp.messages.GPNetInfMessages.NImoveEP.getDefaultInstance();
    }
    public final boolean isInitialized() {
      if (!hasType) return false;
      if (hasAddName()) {
        if (!getAddName().isInitialized()) return false;
      }
      if (hasResolve()) {
        if (!getResolve().isInitialized()) return false;
      }
      if (hasResolveCallback()) {
        if (!getResolveCallback().isInitialized()) return false;
      }
      if (hasPrepareGP()) {
        if (!getPrepareGP().isInitialized()) return false;
      }
      if (hasMoveEP()) {
        if (!getMoveEP().isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasType()) {
        output.writeEnum(1, getType().getNumber());
      }
      if (hasAddName()) {
        output.writeMessage(2, getAddName());
      }
      if (hasResolve()) {
        output.writeMessage(3, getResolve());
      }
      if (hasResolveCallback()) {
        output.writeMessage(4, getResolveCallback());
      }
      if (hasPrepareGP()) {
        output.writeMessage(5, getPrepareGP());
      }
      if (hasMoveEP()) {
        output.writeMessage(6, getMoveEP());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasType()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, getType().getNumber());
      }
      if (hasAddName()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getAddName());
      }
      if (hasResolve()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getResolve());
      }
      if (hasResolveCallback()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getResolveCallback());
      }
      if (hasPrepareGP()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getPrepareGP());
      }
      if (hasMoveEP()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getMoveEP());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    /**
       * The Class Builder.
       * 
       * @author PG Augnet 2, University of Paderborn
       */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      private netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer result;
      
      // Construct using netinf.node.gp.GPNetInfMessages.NIMessageContainer.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer();
        return builder;
      }
      
      protected netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer.getDescriptor();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer getDefaultInstanceForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer) {
          return mergeFrom((netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer other) {
        if (other == netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasAddName()) {
          mergeAddName(other.getAddName());
        }
        if (other.hasResolve()) {
          mergeResolve(other.getResolve());
        }
        if (other.hasResolveCallback()) {
          mergeResolveCallback(other.getResolveCallback());
        }
        if (other.hasPrepareGP()) {
          mergePrepareGP(other.getPrepareGP());
        }
        if (other.hasMoveEP()) {
          mergeMoveEP(other.getMoveEP());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer.NIMessageType value = netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer.NIMessageType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                setType(value);
              }
              break;
            }
            case 18: {
              netinf.node.gp.messages.GPNetInfMessages.NIaddName.Builder subBuilder = netinf.node.gp.messages.GPNetInfMessages.NIaddName.newBuilder();
              if (hasAddName()) {
                subBuilder.mergeFrom(getAddName());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAddName(subBuilder.buildPartial());
              break;
            }
            case 26: {
              netinf.node.gp.messages.GPNetInfMessages.NIresolve.Builder subBuilder = netinf.node.gp.messages.GPNetInfMessages.NIresolve.newBuilder();
              if (hasResolve()) {
                subBuilder.mergeFrom(getResolve());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setResolve(subBuilder.buildPartial());
              break;
            }
            case 34: {
              netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback.Builder subBuilder = netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback.newBuilder();
              if (hasResolveCallback()) {
                subBuilder.mergeFrom(getResolveCallback());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setResolveCallback(subBuilder.buildPartial());
              break;
            }
            case 42: {
              netinf.node.gp.messages.GPNetInfMessages.NIprepareGP.Builder subBuilder = netinf.node.gp.messages.GPNetInfMessages.NIprepareGP.newBuilder();
              if (hasPrepareGP()) {
                subBuilder.mergeFrom(getPrepareGP());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setPrepareGP(subBuilder.buildPartial());
              break;
            }
            case 50: {
              netinf.node.gp.messages.GPNetInfMessages.NImoveEP.Builder subBuilder = netinf.node.gp.messages.GPNetInfMessages.NImoveEP.newBuilder();
              if (hasMoveEP()) {
                subBuilder.mergeFrom(getMoveEP());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setMoveEP(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      
      // required .ForMux.Posix.NetInf.NIMessageContainer.NIMessageType type = 1;
      public boolean hasType() {
        return result.hasType();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer.NIMessageType getType() {
        return result.getType();
      }
      public Builder setType(netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer.NIMessageType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasType = true;
        result.type_ = value;
        return this;
      }
      public Builder clearType() {
        result.hasType = false;
        result.type_ = netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer.NIMessageType.UNKNOWN;
        return this;
      }
      
      // optional .ForMux.Posix.NetInf.NIaddName addName = 2;
      public boolean hasAddName() {
        return result.hasAddName();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NIaddName getAddName() {
        return result.getAddName();
      }
      public Builder setAddName(netinf.node.gp.messages.GPNetInfMessages.NIaddName value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasAddName = true;
        result.addName_ = value;
        return this;
      }
      public Builder setAddName(netinf.node.gp.messages.GPNetInfMessages.NIaddName.Builder builderForValue) {
        result.hasAddName = true;
        result.addName_ = builderForValue.build();
        return this;
      }
      public Builder mergeAddName(netinf.node.gp.messages.GPNetInfMessages.NIaddName value) {
        if (result.hasAddName() &&
            result.addName_ != netinf.node.gp.messages.GPNetInfMessages.NIaddName.getDefaultInstance()) {
          result.addName_ =
            netinf.node.gp.messages.GPNetInfMessages.NIaddName.newBuilder(result.addName_).mergeFrom(value).buildPartial();
        } else {
          result.addName_ = value;
        }
        result.hasAddName = true;
        return this;
      }
      public Builder clearAddName() {
        result.hasAddName = false;
        result.addName_ = netinf.node.gp.messages.GPNetInfMessages.NIaddName.getDefaultInstance();
        return this;
      }
      
      // optional .ForMux.Posix.NetInf.NIresolve resolve = 3;
      public boolean hasResolve() {
        return result.hasResolve();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NIresolve getResolve() {
        return result.getResolve();
      }
      public Builder setResolve(netinf.node.gp.messages.GPNetInfMessages.NIresolve value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasResolve = true;
        result.resolve_ = value;
        return this;
      }
      public Builder setResolve(netinf.node.gp.messages.GPNetInfMessages.NIresolve.Builder builderForValue) {
        result.hasResolve = true;
        result.resolve_ = builderForValue.build();
        return this;
      }
      public Builder mergeResolve(netinf.node.gp.messages.GPNetInfMessages.NIresolve value) {
        if (result.hasResolve() &&
            result.resolve_ != netinf.node.gp.messages.GPNetInfMessages.NIresolve.getDefaultInstance()) {
          result.resolve_ =
            netinf.node.gp.messages.GPNetInfMessages.NIresolve.newBuilder(result.resolve_).mergeFrom(value).buildPartial();
        } else {
          result.resolve_ = value;
        }
        result.hasResolve = true;
        return this;
      }
      public Builder clearResolve() {
        result.hasResolve = false;
        result.resolve_ = netinf.node.gp.messages.GPNetInfMessages.NIresolve.getDefaultInstance();
        return this;
      }
      
      // optional .ForMux.Posix.NetInf.NIresolveCallback resolveCallback = 4;
      public boolean hasResolveCallback() {
        return result.hasResolveCallback();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback getResolveCallback() {
        return result.getResolveCallback();
      }
      public Builder setResolveCallback(netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasResolveCallback = true;
        result.resolveCallback_ = value;
        return this;
      }
      public Builder setResolveCallback(netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback.Builder builderForValue) {
        result.hasResolveCallback = true;
        result.resolveCallback_ = builderForValue.build();
        return this;
      }
      public Builder mergeResolveCallback(netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback value) {
        if (result.hasResolveCallback() &&
            result.resolveCallback_ != netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback.getDefaultInstance()) {
          result.resolveCallback_ =
            netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback.newBuilder(result.resolveCallback_).mergeFrom(value).buildPartial();
        } else {
          result.resolveCallback_ = value;
        }
        result.hasResolveCallback = true;
        return this;
      }
      public Builder clearResolveCallback() {
        result.hasResolveCallback = false;
        result.resolveCallback_ = netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback.getDefaultInstance();
        return this;
      }
      
      // optional .ForMux.Posix.NetInf.NIprepareGP prepareGP = 5;
      public boolean hasPrepareGP() {
        return result.hasPrepareGP();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NIprepareGP getPrepareGP() {
        return result.getPrepareGP();
      }
      public Builder setPrepareGP(netinf.node.gp.messages.GPNetInfMessages.NIprepareGP value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasPrepareGP = true;
        result.prepareGP_ = value;
        return this;
      }
      public Builder setPrepareGP(netinf.node.gp.messages.GPNetInfMessages.NIprepareGP.Builder builderForValue) {
        result.hasPrepareGP = true;
        result.prepareGP_ = builderForValue.build();
        return this;
      }
      public Builder mergePrepareGP(netinf.node.gp.messages.GPNetInfMessages.NIprepareGP value) {
        if (result.hasPrepareGP() &&
            result.prepareGP_ != netinf.node.gp.messages.GPNetInfMessages.NIprepareGP.getDefaultInstance()) {
          result.prepareGP_ =
            netinf.node.gp.messages.GPNetInfMessages.NIprepareGP.newBuilder(result.prepareGP_).mergeFrom(value).buildPartial();
        } else {
          result.prepareGP_ = value;
        }
        result.hasPrepareGP = true;
        return this;
      }
      public Builder clearPrepareGP() {
        result.hasPrepareGP = false;
        result.prepareGP_ = netinf.node.gp.messages.GPNetInfMessages.NIprepareGP.getDefaultInstance();
        return this;
      }
      
      // optional .ForMux.Posix.NetInf.NImoveEP moveEP = 6;
      public boolean hasMoveEP() {
        return result.hasMoveEP();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NImoveEP getMoveEP() {
        return result.getMoveEP();
      }
      public Builder setMoveEP(netinf.node.gp.messages.GPNetInfMessages.NImoveEP value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasMoveEP = true;
        result.moveEP_ = value;
        return this;
      }
      public Builder setMoveEP(netinf.node.gp.messages.GPNetInfMessages.NImoveEP.Builder builderForValue) {
        result.hasMoveEP = true;
        result.moveEP_ = builderForValue.build();
        return this;
      }
      public Builder mergeMoveEP(netinf.node.gp.messages.GPNetInfMessages.NImoveEP value) {
        if (result.hasMoveEP() &&
            result.moveEP_ != netinf.node.gp.messages.GPNetInfMessages.NImoveEP.getDefaultInstance()) {
          result.moveEP_ =
            netinf.node.gp.messages.GPNetInfMessages.NImoveEP.newBuilder(result.moveEP_).mergeFrom(value).buildPartial();
        } else {
          result.moveEP_ = value;
        }
        result.hasMoveEP = true;
        return this;
      }
      public Builder clearMoveEP() {
        result.hasMoveEP = false;
        result.moveEP_ = netinf.node.gp.messages.GPNetInfMessages.NImoveEP.getDefaultInstance();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:ForMux.Posix.NetInf.NIMessageContainer)
    }
    
    static {
      defaultInstance = new NIMessageContainer(true);
      netinf.node.gp.messages.GPNetInfMessages.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ForMux.Posix.NetInf.NIMessageContainer)
  }
  
  /**
    * The Class NIProperty.
    * 
    * @author PG Augnet 2, University of Paderborn
    */
  public static final class NIProperty extends
      com.google.protobuf.GeneratedMessage {
    // Use NIProperty.newBuilder() to construct.
    private NIProperty() {
      initFields();
    }
    private NIProperty(boolean noInit) {}
    
    private static final NIProperty defaultInstance;
    public static NIProperty getDefaultInstance() {
      return defaultInstance;
    }
    
    public NIProperty getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NIProperty_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NIProperty_fieldAccessorTable;
    }
    
    // required string name = 1;
    public static final int NAME_FIELD_NUMBER = 1;
    private boolean hasName;
    private java.lang.String name_ = "";
    public boolean hasName() { return hasName; }
    public java.lang.String getName() { return name_; }
    
    // required string value = 2;
    public static final int VALUE_FIELD_NUMBER = 2;
    private boolean hasValue;
    private java.lang.String value_ = "";
    public boolean hasValue() { return hasValue; }
    public java.lang.String getValue() { return value_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasName) return false;
      if (!hasValue) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasName()) {
        output.writeString(1, getName());
      }
      if (hasValue()) {
        output.writeString(2, getValue());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasName()) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(1, getName());
      }
      if (hasValue()) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(2, getValue());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static netinf.node.gp.messages.GPNetInfMessages.NIProperty parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIProperty parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIProperty parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIProperty parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIProperty parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIProperty parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIProperty parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIProperty parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIProperty parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIProperty parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(netinf.node.gp.messages.GPNetInfMessages.NIProperty prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    /**
       * The Class Builder.
       * 
       * @author PG Augnet 2, University of Paderborn
       */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      private netinf.node.gp.messages.GPNetInfMessages.NIProperty result;
      
      // Construct using netinf.node.gp.GPNetInfMessages.NIProperty.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new netinf.node.gp.messages.GPNetInfMessages.NIProperty();
        return builder;
      }
      
      protected netinf.node.gp.messages.GPNetInfMessages.NIProperty internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new netinf.node.gp.messages.GPNetInfMessages.NIProperty();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NIProperty.getDescriptor();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NIProperty getDefaultInstanceForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NIProperty.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NIProperty build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private netinf.node.gp.messages.GPNetInfMessages.NIProperty buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NIProperty buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        netinf.node.gp.messages.GPNetInfMessages.NIProperty returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof netinf.node.gp.messages.GPNetInfMessages.NIProperty) {
          return mergeFrom((netinf.node.gp.messages.GPNetInfMessages.NIProperty)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(netinf.node.gp.messages.GPNetInfMessages.NIProperty other) {
        if (other == netinf.node.gp.messages.GPNetInfMessages.NIProperty.getDefaultInstance()) return this;
        if (other.hasName()) {
          setName(other.getName());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              setName(input.readString());
              break;
            }
            case 18: {
              setValue(input.readString());
              break;
            }
          }
        }
      }
      
      
      // required string name = 1;
      public boolean hasName() {
        return result.hasName();
      }
      public java.lang.String getName() {
        return result.getName();
      }
      public Builder setName(java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasName = true;
        result.name_ = value;
        return this;
      }
      public Builder clearName() {
        result.hasName = false;
        result.name_ = getDefaultInstance().getName();
        return this;
      }
      
      // required string value = 2;
      public boolean hasValue() {
        return result.hasValue();
      }
      public java.lang.String getValue() {
        return result.getValue();
      }
      public Builder setValue(java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasValue = true;
        result.value_ = value;
        return this;
      }
      public Builder clearValue() {
        result.hasValue = false;
        result.value_ = getDefaultInstance().getValue();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:ForMux.Posix.NetInf.NIProperty)
    }
    
    static {
      defaultInstance = new NIProperty(true);
      netinf.node.gp.messages.GPNetInfMessages.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ForMux.Posix.NetInf.NIProperty)
  }
  
  /**
    * The Class NICapability.
    * 
    * @author PG Augnet 2, University of Paderborn
    */
  public static final class NICapability extends
      com.google.protobuf.GeneratedMessage {
    // Use NICapability.newBuilder() to construct.
    private NICapability() {
      initFields();
    }
    private NICapability(boolean noInit) {}
    
    private static final NICapability defaultInstance;
    public static NICapability getDefaultInstance() {
      return defaultInstance;
    }
    
    public NICapability getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NICapability_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NICapability_fieldAccessorTable;
    }
    
    // required string name = 1;
    public static final int NAME_FIELD_NUMBER = 1;
    private boolean hasName;
    private java.lang.String name_ = "";
    public boolean hasName() { return hasName; }
    public java.lang.String getName() { return name_; }
    
    // repeated .ForMux.Posix.NetInf.NIProperty properties = 2;
    public static final int PROPERTIES_FIELD_NUMBER = 2;
    private java.util.List<netinf.node.gp.messages.GPNetInfMessages.NIProperty> properties_ =
      java.util.Collections.emptyList();
    public java.util.List<netinf.node.gp.messages.GPNetInfMessages.NIProperty> getPropertiesList() {
      return properties_;
    }
    public int getPropertiesCount() { return properties_.size(); }
    public netinf.node.gp.messages.GPNetInfMessages.NIProperty getProperties(int index) {
      return properties_.get(index);
    }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasName) return false;
      for (netinf.node.gp.messages.GPNetInfMessages.NIProperty element : getPropertiesList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasName()) {
        output.writeString(1, getName());
      }
      for (netinf.node.gp.messages.GPNetInfMessages.NIProperty element : getPropertiesList()) {
        output.writeMessage(2, element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasName()) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(1, getName());
      }
      for (netinf.node.gp.messages.GPNetInfMessages.NIProperty element : getPropertiesList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static netinf.node.gp.messages.GPNetInfMessages.NICapability parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NICapability parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NICapability parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NICapability parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NICapability parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NICapability parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NICapability parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NICapability parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NICapability parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NICapability parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(netinf.node.gp.messages.GPNetInfMessages.NICapability prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    /**
       * The Class Builder.
       * 
       * @author PG Augnet 2, University of Paderborn
       */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      private netinf.node.gp.messages.GPNetInfMessages.NICapability result;
      
      // Construct using netinf.node.gp.GPNetInfMessages.NICapability.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new netinf.node.gp.messages.GPNetInfMessages.NICapability();
        return builder;
      }
      
      protected netinf.node.gp.messages.GPNetInfMessages.NICapability internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new netinf.node.gp.messages.GPNetInfMessages.NICapability();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NICapability.getDescriptor();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NICapability getDefaultInstanceForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NICapability.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NICapability build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private netinf.node.gp.messages.GPNetInfMessages.NICapability buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NICapability buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.properties_ != java.util.Collections.EMPTY_LIST) {
          result.properties_ =
            java.util.Collections.unmodifiableList(result.properties_);
        }
        netinf.node.gp.messages.GPNetInfMessages.NICapability returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof netinf.node.gp.messages.GPNetInfMessages.NICapability) {
          return mergeFrom((netinf.node.gp.messages.GPNetInfMessages.NICapability)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(netinf.node.gp.messages.GPNetInfMessages.NICapability other) {
        if (other == netinf.node.gp.messages.GPNetInfMessages.NICapability.getDefaultInstance()) return this;
        if (other.hasName()) {
          setName(other.getName());
        }
        if (!other.properties_.isEmpty()) {
          if (result.properties_.isEmpty()) {
            result.properties_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NIProperty>();
          }
          result.properties_.addAll(other.properties_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              setName(input.readString());
              break;
            }
            case 18: {
              netinf.node.gp.messages.GPNetInfMessages.NIProperty.Builder subBuilder = netinf.node.gp.messages.GPNetInfMessages.NIProperty.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addProperties(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      
      // required string name = 1;
      public boolean hasName() {
        return result.hasName();
      }
      public java.lang.String getName() {
        return result.getName();
      }
      public Builder setName(java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasName = true;
        result.name_ = value;
        return this;
      }
      public Builder clearName() {
        result.hasName = false;
        result.name_ = getDefaultInstance().getName();
        return this;
      }
      
      // repeated .ForMux.Posix.NetInf.NIProperty properties = 2;
      public java.util.List<netinf.node.gp.messages.GPNetInfMessages.NIProperty> getPropertiesList() {
        return java.util.Collections.unmodifiableList(result.properties_);
      }
      public int getPropertiesCount() {
        return result.getPropertiesCount();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NIProperty getProperties(int index) {
        return result.getProperties(index);
      }
      public Builder setProperties(int index, netinf.node.gp.messages.GPNetInfMessages.NIProperty value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.properties_.set(index, value);
        return this;
      }
      public Builder setProperties(int index, netinf.node.gp.messages.GPNetInfMessages.NIProperty.Builder builderForValue) {
        result.properties_.set(index, builderForValue.build());
        return this;
      }
      public Builder addProperties(netinf.node.gp.messages.GPNetInfMessages.NIProperty value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.properties_.isEmpty()) {
          result.properties_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NIProperty>();
        }
        result.properties_.add(value);
        return this;
      }
      public Builder addProperties(netinf.node.gp.messages.GPNetInfMessages.NIProperty.Builder builderForValue) {
        if (result.properties_.isEmpty()) {
          result.properties_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NIProperty>();
        }
        result.properties_.add(builderForValue.build());
        return this;
      }
      public Builder addAllProperties(
          java.lang.Iterable<? extends netinf.node.gp.messages.GPNetInfMessages.NIProperty> values) {
        if (result.properties_.isEmpty()) {
          result.properties_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NIProperty>();
        }
        super.addAll(values, result.properties_);
        return this;
      }
      public Builder clearProperties() {
        result.properties_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:ForMux.Posix.NetInf.NICapability)
    }
    
    static {
      defaultInstance = new NICapability(true);
      netinf.node.gp.messages.GPNetInfMessages.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ForMux.Posix.NetInf.NICapability)
  }
  
  /**
    * The Class NIResolution.
    * 
    * @author PG Augnet 2, University of Paderborn
    */
  public static final class NIResolution extends
      com.google.protobuf.GeneratedMessage {
    // Use NIResolution.newBuilder() to construct.
    private NIResolution() {
      initFields();
    }
    private NIResolution(boolean noInit) {}
    
    private static final NIResolution defaultInstance;
    public static NIResolution getDefaultInstance() {
      return defaultInstance;
    }
    
    public NIResolution getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NIResolution_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NIResolution_fieldAccessorTable;
    }
    
    // required string targetAddress = 1;
    public static final int TARGETADDRESS_FIELD_NUMBER = 1;
    private boolean hasTargetAddress;
    private java.lang.String targetAddress_ = "";
    public boolean hasTargetAddress() { return hasTargetAddress; }
    public java.lang.String getTargetAddress() { return targetAddress_; }
    
    // required string destinationName = 2;
    public static final int DESTINATIONNAME_FIELD_NUMBER = 2;
    private boolean hasDestinationName;
    private java.lang.String destinationName_ = "";
    public boolean hasDestinationName() { return hasDestinationName; }
    public java.lang.String getDestinationName() { return destinationName_; }
    
    // repeated .ForMux.Posix.NetInf.NICapability capabilities = 3;
    public static final int CAPABILITIES_FIELD_NUMBER = 3;
    private java.util.List<netinf.node.gp.messages.GPNetInfMessages.NICapability> capabilities_ =
      java.util.Collections.emptyList();
    public java.util.List<netinf.node.gp.messages.GPNetInfMessages.NICapability> getCapabilitiesList() {
      return capabilities_;
    }
    public int getCapabilitiesCount() { return capabilities_.size(); }
    public netinf.node.gp.messages.GPNetInfMessages.NICapability getCapabilities(int index) {
      return capabilities_.get(index);
    }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTargetAddress) return false;
      if (!hasDestinationName) return false;
      for (netinf.node.gp.messages.GPNetInfMessages.NICapability element : getCapabilitiesList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTargetAddress()) {
        output.writeString(1, getTargetAddress());
      }
      if (hasDestinationName()) {
        output.writeString(2, getDestinationName());
      }
      for (netinf.node.gp.messages.GPNetInfMessages.NICapability element : getCapabilitiesList()) {
        output.writeMessage(3, element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTargetAddress()) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(1, getTargetAddress());
      }
      if (hasDestinationName()) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(2, getDestinationName());
      }
      for (netinf.node.gp.messages.GPNetInfMessages.NICapability element : getCapabilitiesList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, element);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static netinf.node.gp.messages.GPNetInfMessages.NIResolution parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIResolution parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIResolution parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIResolution parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIResolution parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIResolution parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIResolution parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIResolution parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIResolution parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIResolution parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(netinf.node.gp.messages.GPNetInfMessages.NIResolution prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    /**
       * The Class Builder.
       * 
       * @author PG Augnet 2, University of Paderborn
       */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      private netinf.node.gp.messages.GPNetInfMessages.NIResolution result;
      
      // Construct using netinf.node.gp.GPNetInfMessages.NIResolution.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new netinf.node.gp.messages.GPNetInfMessages.NIResolution();
        return builder;
      }
      
      protected netinf.node.gp.messages.GPNetInfMessages.NIResolution internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new netinf.node.gp.messages.GPNetInfMessages.NIResolution();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NIResolution.getDescriptor();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NIResolution getDefaultInstanceForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NIResolution.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NIResolution build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private netinf.node.gp.messages.GPNetInfMessages.NIResolution buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NIResolution buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.capabilities_ != java.util.Collections.EMPTY_LIST) {
          result.capabilities_ =
            java.util.Collections.unmodifiableList(result.capabilities_);
        }
        netinf.node.gp.messages.GPNetInfMessages.NIResolution returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof netinf.node.gp.messages.GPNetInfMessages.NIResolution) {
          return mergeFrom((netinf.node.gp.messages.GPNetInfMessages.NIResolution)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(netinf.node.gp.messages.GPNetInfMessages.NIResolution other) {
        if (other == netinf.node.gp.messages.GPNetInfMessages.NIResolution.getDefaultInstance()) return this;
        if (other.hasTargetAddress()) {
          setTargetAddress(other.getTargetAddress());
        }
        if (other.hasDestinationName()) {
          setDestinationName(other.getDestinationName());
        }
        if (!other.capabilities_.isEmpty()) {
          if (result.capabilities_.isEmpty()) {
            result.capabilities_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NICapability>();
          }
          result.capabilities_.addAll(other.capabilities_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              setTargetAddress(input.readString());
              break;
            }
            case 18: {
              setDestinationName(input.readString());
              break;
            }
            case 26: {
              netinf.node.gp.messages.GPNetInfMessages.NICapability.Builder subBuilder = netinf.node.gp.messages.GPNetInfMessages.NICapability.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addCapabilities(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      
      // required string targetAddress = 1;
      public boolean hasTargetAddress() {
        return result.hasTargetAddress();
      }
      public java.lang.String getTargetAddress() {
        return result.getTargetAddress();
      }
      public Builder setTargetAddress(java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasTargetAddress = true;
        result.targetAddress_ = value;
        return this;
      }
      public Builder clearTargetAddress() {
        result.hasTargetAddress = false;
        result.targetAddress_ = getDefaultInstance().getTargetAddress();
        return this;
      }
      
      // required string destinationName = 2;
      public boolean hasDestinationName() {
        return result.hasDestinationName();
      }
      public java.lang.String getDestinationName() {
        return result.getDestinationName();
      }
      public Builder setDestinationName(java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasDestinationName = true;
        result.destinationName_ = value;
        return this;
      }
      public Builder clearDestinationName() {
        result.hasDestinationName = false;
        result.destinationName_ = getDefaultInstance().getDestinationName();
        return this;
      }
      
      // repeated .ForMux.Posix.NetInf.NICapability capabilities = 3;
      public java.util.List<netinf.node.gp.messages.GPNetInfMessages.NICapability> getCapabilitiesList() {
        return java.util.Collections.unmodifiableList(result.capabilities_);
      }
      public int getCapabilitiesCount() {
        return result.getCapabilitiesCount();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NICapability getCapabilities(int index) {
        return result.getCapabilities(index);
      }
      public Builder setCapabilities(int index, netinf.node.gp.messages.GPNetInfMessages.NICapability value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.capabilities_.set(index, value);
        return this;
      }
      public Builder setCapabilities(int index, netinf.node.gp.messages.GPNetInfMessages.NICapability.Builder builderForValue) {
        result.capabilities_.set(index, builderForValue.build());
        return this;
      }
      public Builder addCapabilities(netinf.node.gp.messages.GPNetInfMessages.NICapability value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.capabilities_.isEmpty()) {
          result.capabilities_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NICapability>();
        }
        result.capabilities_.add(value);
        return this;
      }
      public Builder addCapabilities(netinf.node.gp.messages.GPNetInfMessages.NICapability.Builder builderForValue) {
        if (result.capabilities_.isEmpty()) {
          result.capabilities_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NICapability>();
        }
        result.capabilities_.add(builderForValue.build());
        return this;
      }
      public Builder addAllCapabilities(
          java.lang.Iterable<? extends netinf.node.gp.messages.GPNetInfMessages.NICapability> values) {
        if (result.capabilities_.isEmpty()) {
          result.capabilities_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NICapability>();
        }
        super.addAll(values, result.capabilities_);
        return this;
      }
      public Builder clearCapabilities() {
        result.capabilities_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:ForMux.Posix.NetInf.NIResolution)
    }
    
    static {
      defaultInstance = new NIResolution(true);
      netinf.node.gp.messages.GPNetInfMessages.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ForMux.Posix.NetInf.NIResolution)
  }
  
  /**
    * The Class NIaddName.
    * 
    * @author PG Augnet 2, University of Paderborn
    */
  public static final class NIaddName extends
      com.google.protobuf.GeneratedMessage {
    // Use NIaddName.newBuilder() to construct.
    private NIaddName() {
      initFields();
    }
    private NIaddName(boolean noInit) {}
    
    private static final NIaddName defaultInstance;
    public static NIaddName getDefaultInstance() {
      return defaultInstance;
    }
    
    public NIaddName getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NIaddName_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NIaddName_fieldAccessorTable;
    }
    
    // required string name = 1;
    public static final int NAME_FIELD_NUMBER = 1;
    private boolean hasName;
    private java.lang.String name_ = "";
    public boolean hasName() { return hasName; }
    public java.lang.String getName() { return name_; }
    
    // repeated .ForMux.Posix.NetInf.NICapability capabilities = 2;
    public static final int CAPABILITIES_FIELD_NUMBER = 2;
    private java.util.List<netinf.node.gp.messages.GPNetInfMessages.NICapability> capabilities_ =
      java.util.Collections.emptyList();
    public java.util.List<netinf.node.gp.messages.GPNetInfMessages.NICapability> getCapabilitiesList() {
      return capabilities_;
    }
    public int getCapabilitiesCount() { return capabilities_.size(); }
    public netinf.node.gp.messages.GPNetInfMessages.NICapability getCapabilities(int index) {
      return capabilities_.get(index);
    }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasName) return false;
      for (netinf.node.gp.messages.GPNetInfMessages.NICapability element : getCapabilitiesList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasName()) {
        output.writeString(1, getName());
      }
      for (netinf.node.gp.messages.GPNetInfMessages.NICapability element : getCapabilitiesList()) {
        output.writeMessage(2, element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasName()) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(1, getName());
      }
      for (netinf.node.gp.messages.GPNetInfMessages.NICapability element : getCapabilitiesList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static netinf.node.gp.messages.GPNetInfMessages.NIaddName parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIaddName parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIaddName parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIaddName parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIaddName parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIaddName parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIaddName parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIaddName parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIaddName parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIaddName parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(netinf.node.gp.messages.GPNetInfMessages.NIaddName prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    /**
       * The Class Builder.
       * 
       * @author PG Augnet 2, University of Paderborn
       */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      private netinf.node.gp.messages.GPNetInfMessages.NIaddName result;
      
      // Construct using netinf.node.gp.GPNetInfMessages.NIaddName.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new netinf.node.gp.messages.GPNetInfMessages.NIaddName();
        return builder;
      }
      
      protected netinf.node.gp.messages.GPNetInfMessages.NIaddName internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new netinf.node.gp.messages.GPNetInfMessages.NIaddName();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NIaddName.getDescriptor();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NIaddName getDefaultInstanceForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NIaddName.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NIaddName build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private netinf.node.gp.messages.GPNetInfMessages.NIaddName buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NIaddName buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.capabilities_ != java.util.Collections.EMPTY_LIST) {
          result.capabilities_ =
            java.util.Collections.unmodifiableList(result.capabilities_);
        }
        netinf.node.gp.messages.GPNetInfMessages.NIaddName returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof netinf.node.gp.messages.GPNetInfMessages.NIaddName) {
          return mergeFrom((netinf.node.gp.messages.GPNetInfMessages.NIaddName)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(netinf.node.gp.messages.GPNetInfMessages.NIaddName other) {
        if (other == netinf.node.gp.messages.GPNetInfMessages.NIaddName.getDefaultInstance()) return this;
        if (other.hasName()) {
          setName(other.getName());
        }
        if (!other.capabilities_.isEmpty()) {
          if (result.capabilities_.isEmpty()) {
            result.capabilities_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NICapability>();
          }
          result.capabilities_.addAll(other.capabilities_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              setName(input.readString());
              break;
            }
            case 18: {
              netinf.node.gp.messages.GPNetInfMessages.NICapability.Builder subBuilder = netinf.node.gp.messages.GPNetInfMessages.NICapability.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addCapabilities(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      
      // required string name = 1;
      public boolean hasName() {
        return result.hasName();
      }
      public java.lang.String getName() {
        return result.getName();
      }
      public Builder setName(java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasName = true;
        result.name_ = value;
        return this;
      }
      public Builder clearName() {
        result.hasName = false;
        result.name_ = getDefaultInstance().getName();
        return this;
      }
      
      // repeated .ForMux.Posix.NetInf.NICapability capabilities = 2;
      public java.util.List<netinf.node.gp.messages.GPNetInfMessages.NICapability> getCapabilitiesList() {
        return java.util.Collections.unmodifiableList(result.capabilities_);
      }
      public int getCapabilitiesCount() {
        return result.getCapabilitiesCount();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NICapability getCapabilities(int index) {
        return result.getCapabilities(index);
      }
      public Builder setCapabilities(int index, netinf.node.gp.messages.GPNetInfMessages.NICapability value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.capabilities_.set(index, value);
        return this;
      }
      public Builder setCapabilities(int index, netinf.node.gp.messages.GPNetInfMessages.NICapability.Builder builderForValue) {
        result.capabilities_.set(index, builderForValue.build());
        return this;
      }
      public Builder addCapabilities(netinf.node.gp.messages.GPNetInfMessages.NICapability value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.capabilities_.isEmpty()) {
          result.capabilities_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NICapability>();
        }
        result.capabilities_.add(value);
        return this;
      }
      public Builder addCapabilities(netinf.node.gp.messages.GPNetInfMessages.NICapability.Builder builderForValue) {
        if (result.capabilities_.isEmpty()) {
          result.capabilities_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NICapability>();
        }
        result.capabilities_.add(builderForValue.build());
        return this;
      }
      public Builder addAllCapabilities(
          java.lang.Iterable<? extends netinf.node.gp.messages.GPNetInfMessages.NICapability> values) {
        if (result.capabilities_.isEmpty()) {
          result.capabilities_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NICapability>();
        }
        super.addAll(values, result.capabilities_);
        return this;
      }
      public Builder clearCapabilities() {
        result.capabilities_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:ForMux.Posix.NetInf.NIaddName)
    }
    
    static {
      defaultInstance = new NIaddName(true);
      netinf.node.gp.messages.GPNetInfMessages.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ForMux.Posix.NetInf.NIaddName)
  }
  
  /**
    * The Class NIresolve.
    * 
    * @author PG Augnet 2, University of Paderborn
    */
  public static final class NIresolve extends
      com.google.protobuf.GeneratedMessage {
    // Use NIresolve.newBuilder() to construct.
    private NIresolve() {
      initFields();
    }
    private NIresolve(boolean noInit) {}
    
    private static final NIresolve defaultInstance;
    public static NIresolve getDefaultInstance() {
      return defaultInstance;
    }
    
    public NIresolve getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NIresolve_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NIresolve_fieldAccessorTable;
    }
    
    // required string destinationName = 1;
    public static final int DESTINATIONNAME_FIELD_NUMBER = 1;
    private boolean hasDestinationName;
    private java.lang.String destinationName_ = "";
    public boolean hasDestinationName() { return hasDestinationName; }
    public java.lang.String getDestinationName() { return destinationName_; }
    
    // repeated .ForMux.Posix.NetInf.NICapability capabilities = 2;
    public static final int CAPABILITIES_FIELD_NUMBER = 2;
    private java.util.List<netinf.node.gp.messages.GPNetInfMessages.NICapability> capabilities_ =
      java.util.Collections.emptyList();
    public java.util.List<netinf.node.gp.messages.GPNetInfMessages.NICapability> getCapabilitiesList() {
      return capabilities_;
    }
    public int getCapabilitiesCount() { return capabilities_.size(); }
    public netinf.node.gp.messages.GPNetInfMessages.NICapability getCapabilities(int index) {
      return capabilities_.get(index);
    }
    
    // required uint32 callbackId = 3;
    public static final int CALLBACKID_FIELD_NUMBER = 3;
    private boolean hasCallbackId;
    private int callbackId_ = 0;
    public boolean hasCallbackId() { return hasCallbackId; }
    public int getCallbackId() { return callbackId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasDestinationName) return false;
      if (!hasCallbackId) return false;
      for (netinf.node.gp.messages.GPNetInfMessages.NICapability element : getCapabilitiesList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasDestinationName()) {
        output.writeString(1, getDestinationName());
      }
      for (netinf.node.gp.messages.GPNetInfMessages.NICapability element : getCapabilitiesList()) {
        output.writeMessage(2, element);
      }
      if (hasCallbackId()) {
        output.writeUInt32(3, getCallbackId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasDestinationName()) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(1, getDestinationName());
      }
      for (netinf.node.gp.messages.GPNetInfMessages.NICapability element : getCapabilitiesList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasCallbackId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, getCallbackId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolve parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolve parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolve parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolve parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolve parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolve parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolve parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolve parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolve parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolve parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(netinf.node.gp.messages.GPNetInfMessages.NIresolve prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    /**
       * The Class Builder.
       * 
       * @author PG Augnet 2, University of Paderborn
       */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      private netinf.node.gp.messages.GPNetInfMessages.NIresolve result;
      
      // Construct using netinf.node.gp.GPNetInfMessages.NIresolve.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new netinf.node.gp.messages.GPNetInfMessages.NIresolve();
        return builder;
      }
      
      protected netinf.node.gp.messages.GPNetInfMessages.NIresolve internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new netinf.node.gp.messages.GPNetInfMessages.NIresolve();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NIresolve.getDescriptor();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NIresolve getDefaultInstanceForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NIresolve.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NIresolve build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private netinf.node.gp.messages.GPNetInfMessages.NIresolve buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NIresolve buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.capabilities_ != java.util.Collections.EMPTY_LIST) {
          result.capabilities_ =
            java.util.Collections.unmodifiableList(result.capabilities_);
        }
        netinf.node.gp.messages.GPNetInfMessages.NIresolve returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof netinf.node.gp.messages.GPNetInfMessages.NIresolve) {
          return mergeFrom((netinf.node.gp.messages.GPNetInfMessages.NIresolve)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(netinf.node.gp.messages.GPNetInfMessages.NIresolve other) {
        if (other == netinf.node.gp.messages.GPNetInfMessages.NIresolve.getDefaultInstance()) return this;
        if (other.hasDestinationName()) {
          setDestinationName(other.getDestinationName());
        }
        if (!other.capabilities_.isEmpty()) {
          if (result.capabilities_.isEmpty()) {
            result.capabilities_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NICapability>();
          }
          result.capabilities_.addAll(other.capabilities_);
        }
        if (other.hasCallbackId()) {
          setCallbackId(other.getCallbackId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              setDestinationName(input.readString());
              break;
            }
            case 18: {
              netinf.node.gp.messages.GPNetInfMessages.NICapability.Builder subBuilder = netinf.node.gp.messages.GPNetInfMessages.NICapability.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addCapabilities(subBuilder.buildPartial());
              break;
            }
            case 24: {
              setCallbackId(input.readUInt32());
              break;
            }
          }
        }
      }
      
      
      // required string destinationName = 1;
      public boolean hasDestinationName() {
        return result.hasDestinationName();
      }
      public java.lang.String getDestinationName() {
        return result.getDestinationName();
      }
      public Builder setDestinationName(java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasDestinationName = true;
        result.destinationName_ = value;
        return this;
      }
      public Builder clearDestinationName() {
        result.hasDestinationName = false;
        result.destinationName_ = getDefaultInstance().getDestinationName();
        return this;
      }
      
      // repeated .ForMux.Posix.NetInf.NICapability capabilities = 2;
      public java.util.List<netinf.node.gp.messages.GPNetInfMessages.NICapability> getCapabilitiesList() {
        return java.util.Collections.unmodifiableList(result.capabilities_);
      }
      public int getCapabilitiesCount() {
        return result.getCapabilitiesCount();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NICapability getCapabilities(int index) {
        return result.getCapabilities(index);
      }
      public Builder setCapabilities(int index, netinf.node.gp.messages.GPNetInfMessages.NICapability value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.capabilities_.set(index, value);
        return this;
      }
      public Builder setCapabilities(int index, netinf.node.gp.messages.GPNetInfMessages.NICapability.Builder builderForValue) {
        result.capabilities_.set(index, builderForValue.build());
        return this;
      }
      public Builder addCapabilities(netinf.node.gp.messages.GPNetInfMessages.NICapability value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.capabilities_.isEmpty()) {
          result.capabilities_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NICapability>();
        }
        result.capabilities_.add(value);
        return this;
      }
      public Builder addCapabilities(netinf.node.gp.messages.GPNetInfMessages.NICapability.Builder builderForValue) {
        if (result.capabilities_.isEmpty()) {
          result.capabilities_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NICapability>();
        }
        result.capabilities_.add(builderForValue.build());
        return this;
      }
      public Builder addAllCapabilities(
          java.lang.Iterable<? extends netinf.node.gp.messages.GPNetInfMessages.NICapability> values) {
        if (result.capabilities_.isEmpty()) {
          result.capabilities_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NICapability>();
        }
        super.addAll(values, result.capabilities_);
        return this;
      }
      public Builder clearCapabilities() {
        result.capabilities_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required uint32 callbackId = 3;
      public boolean hasCallbackId() {
        return result.hasCallbackId();
      }
      public int getCallbackId() {
        return result.getCallbackId();
      }
      public Builder setCallbackId(int value) {
        result.hasCallbackId = true;
        result.callbackId_ = value;
        return this;
      }
      public Builder clearCallbackId() {
        result.hasCallbackId = false;
        result.callbackId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:ForMux.Posix.NetInf.NIresolve)
    }
    
    static {
      defaultInstance = new NIresolve(true);
      netinf.node.gp.messages.GPNetInfMessages.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ForMux.Posix.NetInf.NIresolve)
  }
  
  /**
    * The Class NIresolveCallback.
    * 
    * @author PG Augnet 2, University of Paderborn
    */
  public static final class NIresolveCallback extends
      com.google.protobuf.GeneratedMessage {
    // Use NIresolveCallback.newBuilder() to construct.
    private NIresolveCallback() {
      initFields();
    }
    private NIresolveCallback(boolean noInit) {}
    
    private static final NIresolveCallback defaultInstance;
    public static NIresolveCallback getDefaultInstance() {
      return defaultInstance;
    }
    
    public NIresolveCallback getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NIresolveCallback_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NIresolveCallback_fieldAccessorTable;
    }
    
    // required uint32 callbackId = 1;
    public static final int CALLBACKID_FIELD_NUMBER = 1;
    private boolean hasCallbackId;
    private int callbackId_ = 0;
    public boolean hasCallbackId() { return hasCallbackId; }
    public int getCallbackId() { return callbackId_; }
    
    // repeated .ForMux.Posix.NetInf.NIResolution resolutions = 2;
    public static final int RESOLUTIONS_FIELD_NUMBER = 2;
    private java.util.List<netinf.node.gp.messages.GPNetInfMessages.NIResolution> resolutions_ =
      java.util.Collections.emptyList();
    public java.util.List<netinf.node.gp.messages.GPNetInfMessages.NIResolution> getResolutionsList() {
      return resolutions_;
    }
    public int getResolutionsCount() { return resolutions_.size(); }
    public netinf.node.gp.messages.GPNetInfMessages.NIResolution getResolutions(int index) {
      return resolutions_.get(index);
    }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasCallbackId) return false;
      for (netinf.node.gp.messages.GPNetInfMessages.NIResolution element : getResolutionsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasCallbackId()) {
        output.writeUInt32(1, getCallbackId());
      }
      for (netinf.node.gp.messages.GPNetInfMessages.NIResolution element : getResolutionsList()) {
        output.writeMessage(2, element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasCallbackId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, getCallbackId());
      }
      for (netinf.node.gp.messages.GPNetInfMessages.NIResolution element : getResolutionsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    /**
       * The Class Builder.
       * 
       * @author PG Augnet 2, University of Paderborn
       */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      private netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback result;
      
      // Construct using netinf.node.gp.GPNetInfMessages.NIresolveCallback.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback();
        return builder;
      }
      
      protected netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback.getDescriptor();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback getDefaultInstanceForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.resolutions_ != java.util.Collections.EMPTY_LIST) {
          result.resolutions_ =
            java.util.Collections.unmodifiableList(result.resolutions_);
        }
        netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback) {
          return mergeFrom((netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback other) {
        if (other == netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback.getDefaultInstance()) return this;
        if (other.hasCallbackId()) {
          setCallbackId(other.getCallbackId());
        }
        if (!other.resolutions_.isEmpty()) {
          if (result.resolutions_.isEmpty()) {
            result.resolutions_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NIResolution>();
          }
          result.resolutions_.addAll(other.resolutions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setCallbackId(input.readUInt32());
              break;
            }
            case 18: {
              netinf.node.gp.messages.GPNetInfMessages.NIResolution.Builder subBuilder = netinf.node.gp.messages.GPNetInfMessages.NIResolution.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResolutions(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      
      // required uint32 callbackId = 1;
      public boolean hasCallbackId() {
        return result.hasCallbackId();
      }
      public int getCallbackId() {
        return result.getCallbackId();
      }
      public Builder setCallbackId(int value) {
        result.hasCallbackId = true;
        result.callbackId_ = value;
        return this;
      }
      public Builder clearCallbackId() {
        result.hasCallbackId = false;
        result.callbackId_ = 0;
        return this;
      }
      
      // repeated .ForMux.Posix.NetInf.NIResolution resolutions = 2;
      public java.util.List<netinf.node.gp.messages.GPNetInfMessages.NIResolution> getResolutionsList() {
        return java.util.Collections.unmodifiableList(result.resolutions_);
      }
      public int getResolutionsCount() {
        return result.getResolutionsCount();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NIResolution getResolutions(int index) {
        return result.getResolutions(index);
      }
      public Builder setResolutions(int index, netinf.node.gp.messages.GPNetInfMessages.NIResolution value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.resolutions_.set(index, value);
        return this;
      }
      public Builder setResolutions(int index, netinf.node.gp.messages.GPNetInfMessages.NIResolution.Builder builderForValue) {
        result.resolutions_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResolutions(netinf.node.gp.messages.GPNetInfMessages.NIResolution value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.resolutions_.isEmpty()) {
          result.resolutions_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NIResolution>();
        }
        result.resolutions_.add(value);
        return this;
      }
      public Builder addResolutions(netinf.node.gp.messages.GPNetInfMessages.NIResolution.Builder builderForValue) {
        if (result.resolutions_.isEmpty()) {
          result.resolutions_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NIResolution>();
        }
        result.resolutions_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResolutions(
          java.lang.Iterable<? extends netinf.node.gp.messages.GPNetInfMessages.NIResolution> values) {
        if (result.resolutions_.isEmpty()) {
          result.resolutions_ = new java.util.ArrayList<netinf.node.gp.messages.GPNetInfMessages.NIResolution>();
        }
        super.addAll(values, result.resolutions_);
        return this;
      }
      public Builder clearResolutions() {
        result.resolutions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:ForMux.Posix.NetInf.NIresolveCallback)
    }
    
    static {
      defaultInstance = new NIresolveCallback(true);
      netinf.node.gp.messages.GPNetInfMessages.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ForMux.Posix.NetInf.NIresolveCallback)
  }
  
  /**
    * The Class NIprepareGP.
    * 
    * @author PG Augnet 2, University of Paderborn
    */
  public static final class NIprepareGP extends
      com.google.protobuf.GeneratedMessage {
    // Use NIprepareGP.newBuilder() to construct.
    private NIprepareGP() {
      initFields();
    }
    private NIprepareGP(boolean noInit) {}
    
    private static final NIprepareGP defaultInstance;
    public static NIprepareGP getDefaultInstance() {
      return defaultInstance;
    }
    
    public NIprepareGP getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NIprepareGP_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NIprepareGP_fieldAccessorTable;
    }
    
    // required string url = 1;
    public static final int URL_FIELD_NUMBER = 1;
    private boolean hasUrl;
    private java.lang.String url_ = "";
    public boolean hasUrl() { return hasUrl; }
    public java.lang.String getUrl() { return url_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasUrl) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasUrl()) {
        output.writeString(1, getUrl());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasUrl()) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(1, getUrl());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static netinf.node.gp.messages.GPNetInfMessages.NIprepareGP parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIprepareGP parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIprepareGP parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIprepareGP parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIprepareGP parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIprepareGP parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIprepareGP parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIprepareGP parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIprepareGP parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NIprepareGP parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(netinf.node.gp.messages.GPNetInfMessages.NIprepareGP prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    /**
       * The Class Builder.
       * 
       * @author PG Augnet 2, University of Paderborn
       */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      private netinf.node.gp.messages.GPNetInfMessages.NIprepareGP result;
      
      // Construct using netinf.node.gp.GPNetInfMessages.NIprepareGP.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new netinf.node.gp.messages.GPNetInfMessages.NIprepareGP();
        return builder;
      }
      
      protected netinf.node.gp.messages.GPNetInfMessages.NIprepareGP internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new netinf.node.gp.messages.GPNetInfMessages.NIprepareGP();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NIprepareGP.getDescriptor();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NIprepareGP getDefaultInstanceForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NIprepareGP.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NIprepareGP build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private netinf.node.gp.messages.GPNetInfMessages.NIprepareGP buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NIprepareGP buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        netinf.node.gp.messages.GPNetInfMessages.NIprepareGP returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof netinf.node.gp.messages.GPNetInfMessages.NIprepareGP) {
          return mergeFrom((netinf.node.gp.messages.GPNetInfMessages.NIprepareGP)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(netinf.node.gp.messages.GPNetInfMessages.NIprepareGP other) {
        if (other == netinf.node.gp.messages.GPNetInfMessages.NIprepareGP.getDefaultInstance()) return this;
        if (other.hasUrl()) {
          setUrl(other.getUrl());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              setUrl(input.readString());
              break;
            }
          }
        }
      }
      
      
      // required string url = 1;
      public boolean hasUrl() {
        return result.hasUrl();
      }
      public java.lang.String getUrl() {
        return result.getUrl();
      }
      public Builder setUrl(java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasUrl = true;
        result.url_ = value;
        return this;
      }
      public Builder clearUrl() {
        result.hasUrl = false;
        result.url_ = getDefaultInstance().getUrl();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:ForMux.Posix.NetInf.NIprepareGP)
    }
    
    static {
      defaultInstance = new NIprepareGP(true);
      netinf.node.gp.messages.GPNetInfMessages.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ForMux.Posix.NetInf.NIprepareGP)
  }
  
  /**
    * The Class NImoveEP.
    * 
    * @author PG Augnet 2, University of Paderborn
    */
  public static final class NImoveEP extends
      com.google.protobuf.GeneratedMessage {
    // Use NImoveEP.newBuilder() to construct.
    private NImoveEP() {
      initFields();
    }
    private NImoveEP(boolean noInit) {}
    
    private static final NImoveEP defaultInstance;
    public static NImoveEP getDefaultInstance() {
      return defaultInstance;
    }
    
    public NImoveEP getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NImoveEP_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return netinf.node.gp.messages.GPNetInfMessages.internal_static_ForMux_Posix_NetInf_NImoveEP_fieldAccessorTable;
    }
    
    // required string targetEntity = 1;
    public static final int TARGETENTITY_FIELD_NUMBER = 1;
    private boolean hasTargetEntity;
    private java.lang.String targetEntity_ = "";
    public boolean hasTargetEntity() { return hasTargetEntity; }
    public java.lang.String getTargetEntity() { return targetEntity_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTargetEntity) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTargetEntity()) {
        output.writeString(1, getTargetEntity());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTargetEntity()) {
        size += com.google.protobuf.CodedOutputStream
          .computeStringSize(1, getTargetEntity());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static netinf.node.gp.messages.GPNetInfMessages.NImoveEP parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NImoveEP parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NImoveEP parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NImoveEP parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NImoveEP parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NImoveEP parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NImoveEP parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NImoveEP parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NImoveEP parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static netinf.node.gp.messages.GPNetInfMessages.NImoveEP parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(netinf.node.gp.messages.GPNetInfMessages.NImoveEP prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    /**
       * The Class Builder.
       * 
       * @author PG Augnet 2, University of Paderborn
       */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> {
      private netinf.node.gp.messages.GPNetInfMessages.NImoveEP result;
      
      // Construct using netinf.node.gp.GPNetInfMessages.NImoveEP.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new netinf.node.gp.messages.GPNetInfMessages.NImoveEP();
        return builder;
      }
      
      protected netinf.node.gp.messages.GPNetInfMessages.NImoveEP internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new netinf.node.gp.messages.GPNetInfMessages.NImoveEP();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NImoveEP.getDescriptor();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NImoveEP getDefaultInstanceForType() {
        return netinf.node.gp.messages.GPNetInfMessages.NImoveEP.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public netinf.node.gp.messages.GPNetInfMessages.NImoveEP build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private netinf.node.gp.messages.GPNetInfMessages.NImoveEP buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public netinf.node.gp.messages.GPNetInfMessages.NImoveEP buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        netinf.node.gp.messages.GPNetInfMessages.NImoveEP returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof netinf.node.gp.messages.GPNetInfMessages.NImoveEP) {
          return mergeFrom((netinf.node.gp.messages.GPNetInfMessages.NImoveEP)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(netinf.node.gp.messages.GPNetInfMessages.NImoveEP other) {
        if (other == netinf.node.gp.messages.GPNetInfMessages.NImoveEP.getDefaultInstance()) return this;
        if (other.hasTargetEntity()) {
          setTargetEntity(other.getTargetEntity());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 10: {
              setTargetEntity(input.readString());
              break;
            }
          }
        }
      }
      
      
      // required string targetEntity = 1;
      public boolean hasTargetEntity() {
        return result.hasTargetEntity();
      }
      public java.lang.String getTargetEntity() {
        return result.getTargetEntity();
      }
      public Builder setTargetEntity(java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasTargetEntity = true;
        result.targetEntity_ = value;
        return this;
      }
      public Builder clearTargetEntity() {
        result.hasTargetEntity = false;
        result.targetEntity_ = getDefaultInstance().getTargetEntity();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:ForMux.Posix.NetInf.NImoveEP)
    }
    
    static {
      defaultInstance = new NImoveEP(true);
      netinf.node.gp.messages.GPNetInfMessages.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ForMux.Posix.NetInf.NImoveEP)
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ForMux_Posix_NetInf_NIMessageContainer_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ForMux_Posix_NetInf_NIMessageContainer_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ForMux_Posix_NetInf_NIProperty_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ForMux_Posix_NetInf_NIProperty_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ForMux_Posix_NetInf_NICapability_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ForMux_Posix_NetInf_NICapability_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ForMux_Posix_NetInf_NIResolution_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ForMux_Posix_NetInf_NIResolution_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ForMux_Posix_NetInf_NIaddName_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ForMux_Posix_NetInf_NIaddName_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ForMux_Posix_NetInf_NIresolve_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ForMux_Posix_NetInf_NIresolve_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ForMux_Posix_NetInf_NIresolveCallback_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ForMux_Posix_NetInf_NIresolveCallback_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ForMux_Posix_NetInf_NIprepareGP_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ForMux_Posix_NetInf_NIprepareGP_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_ForMux_Posix_NetInf_NImoveEP_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_ForMux_Posix_NetInf_NImoveEP_fieldAccessorTable;
  
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n%netinf/node/gp/GPNetInfMessages.proto\022" +
      "\023ForMux.Posix.NetInf\"\310\003\n\022NIMessageContai" +
      "ner\022C\n\004type\030\001 \002(\01625.ForMux.Posix.NetInf." +
      "NIMessageContainer.NIMessageType\022/\n\007addN" +
      "ame\030\002 \001(\0132\036.ForMux.Posix.NetInf.NIaddNam" +
      "e\022/\n\007resolve\030\003 \001(\0132\036.ForMux.Posix.NetInf" +
      ".NIresolve\022?\n\017resolveCallback\030\004 \001(\0132&.Fo" +
      "rMux.Posix.NetInf.NIresolveCallback\0223\n\tp" +
      "repareGP\030\005 \001(\0132 .ForMux.Posix.NetInf.NIp" +
      "repareGP\022-\n\006moveEP\030\006 \001(\0132\035.ForMux.Posix.",
      "NetInf.NImoveEP\"f\n\rNIMessageType\022\013\n\007UNKN" +
      "OWN\020\001\022\013\n\007ADDNAME\020\002\022\013\n\007RESOLVE\020\003\022\023\n\017RESOL" +
      "VECALLBACK\020\004\022\r\n\tPREPAREGP\020\005\022\n\n\006MOVEEP\020\006\"" +
      ")\n\nNIProperty\022\014\n\004name\030\001 \002(\t\022\r\n\005value\030\002 \002" +
      "(\t\"Q\n\014NICapability\022\014\n\004name\030\001 \002(\t\0223\n\nprop" +
      "erties\030\002 \003(\0132\037.ForMux.Posix.NetInf.NIPro" +
      "perty\"w\n\014NIResolution\022\025\n\rtargetAddress\030\001" +
      " \002(\t\022\027\n\017destinationName\030\002 \002(\t\0227\n\014capabil" +
      "ities\030\003 \003(\0132!.ForMux.Posix.NetInf.NICapa" +
      "bility\"R\n\tNIaddName\022\014\n\004name\030\001 \002(\t\0227\n\014cap",
      "abilities\030\002 \003(\0132!.ForMux.Posix.NetInf.NI" +
      "Capability\"q\n\tNIresolve\022\027\n\017destinationNa" +
      "me\030\001 \002(\t\0227\n\014capabilities\030\002 \003(\0132!.ForMux." +
      "Posix.NetInf.NICapability\022\022\n\ncallbackId\030" +
      "\003 \002(\r\"_\n\021NIresolveCallback\022\022\n\ncallbackId" +
      "\030\001 \002(\r\0226\n\013resolutions\030\002 \003(\0132!.ForMux.Pos" +
      "ix.NetInf.NIResolution\"\032\n\013NIprepareGP\022\013\n" +
      "\003url\030\001 \002(\t\" \n\010NImoveEP\022\024\n\014targetEntity\030\001" +
      " \002(\tB\020\n\016netinf.node.gp"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_ForMux_Posix_NetInf_NIMessageContainer_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_ForMux_Posix_NetInf_NIMessageContainer_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ForMux_Posix_NetInf_NIMessageContainer_descriptor,
              new java.lang.String[] { "Type", "AddName", "Resolve", "ResolveCallback", "PrepareGP", "MoveEP", },
              netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer.class,
              netinf.node.gp.messages.GPNetInfMessages.NIMessageContainer.Builder.class);
          internal_static_ForMux_Posix_NetInf_NIProperty_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_ForMux_Posix_NetInf_NIProperty_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ForMux_Posix_NetInf_NIProperty_descriptor,
              new java.lang.String[] { "Name", "Value", },
              netinf.node.gp.messages.GPNetInfMessages.NIProperty.class,
              netinf.node.gp.messages.GPNetInfMessages.NIProperty.Builder.class);
          internal_static_ForMux_Posix_NetInf_NICapability_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_ForMux_Posix_NetInf_NICapability_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ForMux_Posix_NetInf_NICapability_descriptor,
              new java.lang.String[] { "Name", "Properties", },
              netinf.node.gp.messages.GPNetInfMessages.NICapability.class,
              netinf.node.gp.messages.GPNetInfMessages.NICapability.Builder.class);
          internal_static_ForMux_Posix_NetInf_NIResolution_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_ForMux_Posix_NetInf_NIResolution_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ForMux_Posix_NetInf_NIResolution_descriptor,
              new java.lang.String[] { "TargetAddress", "DestinationName", "Capabilities", },
              netinf.node.gp.messages.GPNetInfMessages.NIResolution.class,
              netinf.node.gp.messages.GPNetInfMessages.NIResolution.Builder.class);
          internal_static_ForMux_Posix_NetInf_NIaddName_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_ForMux_Posix_NetInf_NIaddName_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ForMux_Posix_NetInf_NIaddName_descriptor,
              new java.lang.String[] { "Name", "Capabilities", },
              netinf.node.gp.messages.GPNetInfMessages.NIaddName.class,
              netinf.node.gp.messages.GPNetInfMessages.NIaddName.Builder.class);
          internal_static_ForMux_Posix_NetInf_NIresolve_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_ForMux_Posix_NetInf_NIresolve_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ForMux_Posix_NetInf_NIresolve_descriptor,
              new java.lang.String[] { "DestinationName", "Capabilities", "CallbackId", },
              netinf.node.gp.messages.GPNetInfMessages.NIresolve.class,
              netinf.node.gp.messages.GPNetInfMessages.NIresolve.Builder.class);
          internal_static_ForMux_Posix_NetInf_NIresolveCallback_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_ForMux_Posix_NetInf_NIresolveCallback_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ForMux_Posix_NetInf_NIresolveCallback_descriptor,
              new java.lang.String[] { "CallbackId", "Resolutions", },
              netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback.class,
              netinf.node.gp.messages.GPNetInfMessages.NIresolveCallback.Builder.class);
          internal_static_ForMux_Posix_NetInf_NIprepareGP_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_ForMux_Posix_NetInf_NIprepareGP_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ForMux_Posix_NetInf_NIprepareGP_descriptor,
              new java.lang.String[] { "Url", },
              netinf.node.gp.messages.GPNetInfMessages.NIprepareGP.class,
              netinf.node.gp.messages.GPNetInfMessages.NIprepareGP.Builder.class);
          internal_static_ForMux_Posix_NetInf_NImoveEP_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_ForMux_Posix_NetInf_NImoveEP_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_ForMux_Posix_NetInf_NImoveEP_descriptor,
              new java.lang.String[] { "TargetEntity", },
              netinf.node.gp.messages.GPNetInfMessages.NImoveEP.class,
              netinf.node.gp.messages.GPNetInfMessages.NImoveEP.Builder.class);
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }
  
  public static void internalForceInit() {}
  
  // @@protoc_insertion_point(outer_class_scope)
}
